package utils;

/**
 * <t:puntero,tbase:...> para representar tipos puntero: tbase es el tipo base
 * del registro.
 */
public class InfoPuntero extends Info {

	private Info tBase;

	public InfoPuntero(String t) {
		super(t, 1);
	}

	public InfoPuntero(String t, Integer tam) {
		super(t, tam);
	}
	
	public InfoPuntero(String t, Info tBase) {
		super(t);
		settBase(tBase);
	}

	public InfoPuntero(String t, Info tBase, Integer tam) {
		super(t, tam);
		settBase(tBase);
	}

	public Info gettBase() {
		return tBase;
	}

	public void settBase(Info tBase) {
		this.tBase = tBase;
	}

	public boolean equals(Object o) {
		if (o == null)
			return false;

		if (!(o instanceof InfoPuntero))
			return false;

		InfoPuntero e = (InfoPuntero) o;
		return t.equals(e.getT()) && tam.equals(e.getTam())
				&& tBase.equals(e.gettBase());
	}
	
	public String toString() {
		return "<t: ^, tbase: " + tBase + ", tam: 1>";
	}
}
